package com.example.leetcode.prcatice;

/**
 * 给定一个正整数，返回它在 Excel 表中相对应的列名称。
 *
 * <p>例如，
 *
 * <p>1 -> A 2 -> B 3 -> C ... 26 -> Z 27 -> AA 28 -> AB ... 示例 1:
 *
 * <p>输入: 1 输出: "A" 示例 2:
 *
 * <p>输入: 28 输出: "AB" 示例 3:
 *
 * <p>输入: 701 输出: "ZY"
 *
 * <p>来源：力扣（LeetCode） 链接：https://leetcode-cn.com/problems/excel-sheet-column-title
 * 著作权归领扣网络所有。商业转载请联系官方授权，非商业转载请注明出处。
 */
public class Test168 {
  // 本题目相当于10进制转换成26进制
  public String convertToTitle(int columnNumber) {
    StringBuilder sb = new StringBuilder();
    while (columnNumber > 0) {
      columnNumber--; // 减一是为了从1到26的进制转换，而一般的进制转换为0~x故不需要减去1
      sb.append((char) (columnNumber % 26 + 'A'));
      columnNumber /= 26;
    }
    return sb.reverse().toString();
  }
}

class Demo168 {
  public static void main(String[] args) {
    Test168 t = new Test168();
    System.out.println(t.convertToTitle(701));
  }
}
